package com.mrjy.maintain.bo;

import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

import com.mrjy.common.dto.UserAddressDTO;
import com.mrjy.common.entity.UserAddress;
import com.mrjy.common.entity.UserInfo;
import com.mrjy.common.util.GlobalConstant;
import com.mrjy.maintain.dao.IUserAddressDao;

@Service
public class UserAddressBo implements IUserAddressBo {
	
	@Resource
	private IUserAddressDao userAddressDao;

	@Override
	public Object txInsert(UserAddress address, HttpSession session) {
		Map<String, Object> map = new HashMap<String, Object>();
		UserInfo loginUser = (UserInfo) session.getAttribute(GlobalConstant.USER_INFO);
//		if(null == loginUser){
//			map.put("err_code", -1);
//			map.put("err_msg", "用户未登录,不能新增地址");
//			return map;
//		}
		if (StringUtils.isBlank(address.getUserName())) {
			map.put("err_code", 401);
			map.put("err_msg", "请填写联系人");
			return map;
		}
		if (StringUtils.isBlank(address.getUserPhone())) {
			map.put("err_code", 402);
			map.put("err_msg", "请填写联系电话");
			return map;
		}
		if (StringUtils.isBlank(address.getProvince())) {
			map.put("err_code", 403);
			map.put("err_msg", "请完整填写地址");
			return map;
		}
		if (StringUtils.isBlank(address.getCity())) {
			map.put("err_code", 404);
			map.put("err_msg", "请完整填写地址");
			return map;
		}
//		if (StringUtils.isBlank(address.getCounty())) {
//			map.put("err_code", 405);
//			map.put("err_msg", "请完整填写地址");
//			return map;
//		}
		if (StringUtils.isBlank(address.getDetail())) {
			map.put("err_code", 406);
			map.put("err_msg", "请填写详细地址");
			return map;
		}
		try {
			address.setCreateTime(new Timestamp(System.currentTimeMillis()));
			address.setDisableFlag(0);
			address.setIsDefault(1);//设为默认
			int row = userAddressDao.insert(address);
			if (row > 0) {
				map.put("err_code", 200);
				map.put("err_msg", "添加成功");
				map.put("userAddressId", address.getId());
			}else {
				map.put("err_code", 500);
				map.put("err_msg", "添加失败");
			}
		} catch (Exception e) {
			e.printStackTrace();
			map.put("err_code", 500);
			map.put("err_msg", "添加失败");
		}
		return map;
	}

	@Override
	public Object queryByUserId(UserAddress address, HttpSession session) {
		Map<String, Object> map = new HashMap<String, Object>();
		UserInfo loginUser = (UserInfo) session.getAttribute(GlobalConstant.USER_INFO);
//		if(null == loginUser){
//			map.put("err_code", -1);
//			map.put("err_msg", "用户未登录,不能新增地址");
//			return map;
//		}
		try {
			List<UserAddressDTO> list = userAddressDao.queryByUserId(address);
			for (UserAddressDTO userAddressDTO : list) {
				if (userAddressDTO.getIsDefault().intValue()==1) {//默认地址
					map.put("default", userAddressDTO);
				}
			}
			map.put("err_code", 200);
			map.put("err_msg", "查询成功");
			map.put("rows", list);
		} catch (Exception e) {
			e.printStackTrace();
			map.put("err_code", 500);
			map.put("err_msg", "查询失败");
		}
		return map;
	}
}
